SAMSprite

Design sprites and animation for your games and utilities. Results can be easily used from BASIC, SAM C, Machine Code or GamesMaster.

Carol Brooksbank, June 1996 FORMAT :-

“] found this a very easy program to use, and certainly, mask creation was the easiest I have ever come across... The handbook is clear and easy to follow, and the program options are straightforward to use. It is a first class introduction to the world of sprites”

30 = No Sg sv s Fash % Route and Sa Pg & ¥ es Lavery x

& $ Fe Fade a d by;

Vv r we & Lacitie;

s é Only £9.99 from FRED Publishing, 12)

40 Roundyhill, Monifieth, Dundee, DD5 4RZ Tel: 01382 535963

Vol.10 N°6. February 1997.

THE HOME OF Z80 COMPUTING

oe HAS ® FORMAT DELIVERY VAN JUST Blown UP?

Us

Trust Them, They Read FORMAT £1.75 (UK R.R.P.) ISSN 0963-8598.

2603s0,

=SOCHUN

SO (ISd AUG

2190) 010q 54

dg6' 65

th 3S oR sae) nun Oo) saa

wos dcG6'6F

“eaud 03 dQQ'SF PPO SISIP “APIO wos dQ0'095

dOS0F S119 JOS ‘J2p10 Jed OO'LF Sig PIOH 365 SOF

2D G&G 9g ty

do0'saF

2 Gi U g ; ve

asnig/2idpsiq Ig6 6lF

Jad

Sig PIOY

~22O[2 IU] SAU SCI

405

UO}}0>||Idy UO B2U1g ‘232 SepoIEdp/squawar0\doy

S D Software

70, Rainhall Road, Barnoldswick Lancashire, BBS 6AB

New Email Address: Nevilley@ndirect.co.uk

CONTENTS

Vol.10 N°6. February 1997. SNGWS ONAMeetn ber ttn arenas: keen 4 STNG FeGitOns S PENS asa. <5: creispw as asl ts geparyn eae asa 6 *ShortiSpota tasty + cay vee entails werner ad 7

¢ Talking C - Part 4 15 LOKI, The Machine That Never Was . .19

+*CP/M, The Sleeping Giant .......... 20

* Spectrum 128K RamPage(ing) - Part 2 eee * UNIDOS Corner . 30 «Puzzle Spot ... . 31 POUL ORGS art sistance tee ae te ie 33 SSMAWIACS av tetera ero ee Neetu Stating 39 «Format Readers Service Page .............. 39

FORMAT (SAM REPAIR SERVICE) 13

FRED PUBLISHING Back Cover HILTON COMPUTER SERVICES 14 NORTHERN SPECTRUM & SAM SHOW 22 REVELATION SOFTWARE 6 S.0.SOFTWARE 2 STEVES SOFTWARE 26

WEST COAST MAIL ORDER 32

FORMAT ISSN 0963-8598 ‘© Copyright 1997 FORMAT PUBLICATIONS, All Rights Reserved. No part of ts pubticaion may be reproduced, in any form, without the writen consent ofthe pubisher. The purchaser of ths ‘magazine may Copy program mater pubished here lr is or her own personal use and provded Pat any such programs are teased ¥ and when the purchaser dapoxes of fs magazine any way While every effort i made 10 ensure accuracy FORMAT te pusher al net be hel able for any tors ox cmessions FORMAT is published by FORMAT PUBLICATIONS. 34, Bourton Road, Gloucester, GL4 OLE, England. Telephone 01452-412572 - Email Formatpub@aol.com

NEWS

1997 marks the 2lst Birthday of the 280 chip used as the microprocessor in both the Spectrum and SAM (and many other computers). First launched in 1976 by Zilog, although it was not until early 1977 that first shipments were made, except to secret military users in the US that is.

When first produced it was one of the most advanced microprocessors available and quickly set new standards for the industry. Other manufactures were swift to clone the Z80 and at one time it became the most widely used CPU in the world. Now, 21 years later, it is still selling in very large numbers and looks set for many more years of sterling

service.

CARETAKER WANTED FRED Publishing are looking for a temporary ‘caretaker’ for its operations. Colin McDonald, boss of FRED, needs to be away quite a lot over the next few months and to avoid letting down customers he is looking for someone to handle the order processing and also the dispatch of each months FRED. Negotiations with a couple of interested parties are al but Colin may still be open to other offers if you would like to make them.

EMULATION ON AMIGA

There is a new 1997 version of Speculator coming out any day now, and another ZX emulator for the Amigas, this time dubbed ‘Speccylator’, from Scandanavia. It apparently works well but has not yet got as many features ZXAM or Speculator.

Lots of ZX emulators for the Amiga and MAG, together with a range of freely distributable ZX software, will be on the cover CD of the edition of Amiga Format which is due out in March,

At least Amiga owners will now have access to some decent software.

CP/M GOING FREE

CP/M, one of the granddaddies of the Disc Operating System world, may soon be available FREE,

US company Caldera, have purchi the rights to all the former Digital Research (DR) products from Novell (who bought out DR’s interest several years ago). The deal included the superb DR-DOS 6 and Novell DOS 7 operating systems for the PC, as well as the many variants of the CP/M operating system which is of great interest to our readers as it works on Z80 based systems.

Their plan appears to be to make working versions available to users on a 90 day free evaluation system. You will then either register as a user, either for a small fee or if you fit their list of exemptions you could escape charges altogether.

‘The PC products are already available for download for the WWW site, CP/M is expected soon. Caldera also plan to release the source code from all the operating systems to encourage further development and to encourage more software to be written to run under them, More news as we receive it.

i= Simon in, Darren Fowler, URGENT we need your news. Anything you think other people should know about. Each item printed earns the contributor 3 months extra subscription (please claim when next renewing).

Right, straight down to business this month. Contributions - no not to my retirement fund (although those would be greatfully received) but contributions to FORMAT, or rather the recent lack of them. Our once overflowing files are now sadly depleted because, of late, there has not been much coming in. So, A VERY URGENT DEMAND, put pen to paper or finger to keyboard and contribute something, please!

Remember that this is a user group, and as such we rely on you, the users, to fill the pages of FORMAT each month. And don't say you have nothing to contribute - everyone has something, A small letter, a little hint, tip or programming item for Short Spot, a single page article or a whole series - it really doesn't matter as long as you do your little bit to help fill these pages.

Now I've published appeals for stuff in the past, some have produced results, others have not, But this appeal is a very urgent one because if it is not heeded then we may well not have enough stuff to fill FORMAT issues in a few months (bear in ‘mind that there is a delay between getting an article from you and it appearing in print because of the type-setting etc.)

If anyone needs help or advice then Jenny or myself are here to give it - we want to see you in print and so we will do everything we can to help you. Don't worry too much about the English, if several of our overseas readers can manage to contribute (when English is their second, or even third, language) I'm sure that there is not one of you out there that could not write something for us. Remember that what you see in

FORMAT is the finished article, so don’t be put off by thinking “I can't write that well” my reply to that would be “you ought to have seen some of the articles before we editied them”,

Please, put in a little bit of effort, just for us.

Ok, this months issue is running a bit late, I was late starting it because of illness in my family, and now as I write this I still don't have Short Spot here because John Wase is having problems with illness in his family.

As such I don’t know if this issue will be back to normal size (after our usual smaller January issue) or if we may have to run without Short Spot to get the issue out to you. If we are a little small, sorry, we will be back to normal next month,

Wetherby will be just a week away by the time you get this issue, I look forward to seeing many of our Northern members there - lets make this one a real success. But also remember that the next Gloucester Show is in April - so start making arrangements to come, no excuses now - the Gloucester shows are the ones that no Spectrum or SAM user can afford to miss.

Finally this month, Jenny is looking for more material on the Year 2000 problem with computers. If you come across anything in magazines or newspapers she would really appreciate a cutting or copy to add to her file. This is certainly becoming a popular topic of conversation in computer circles and we want to keep everybody informed, so keep your eyes peeled please.

Until next month.

Bob Brenchley, Editor.

SOPHISTRY NEW ELITE NEW Our latest & BEST licenced game. Originally |The legendry game at last available on SAM produced for the Spectrum by CRL, and now | disc. Using the code of the Spectrum version, brilliantly converted for SAM, Sophistry is a | long thought the best after the original BBC game that is big, perplexing, colourful, | version, this game is a must for everyone who frustrating, musical, bouncy, and above all | loves action and adventure, Full manuals, story DIFFERENT (and it even has the Spectrum | book and packaging. version built in so you can take a trip down | £14-95 (£11-95 to INDUG members) memory lane),

: ‘GRUBBING FOR GOLD 29-25 CESS A INDUG members) GRUBBING FOR GOLD - the most Tet advanced, the most playable, the most

enjoyable quiz game since the legendary Quiz Ball, They said it could not be done - they said A Bame Packed with humour®, colour®, | bringing a TV quiz show to SAM would not Loosely based on Bomb Jack (the game | Wo": Well let them eat their hearts out SAM owners have most requested over the | because YOU GOT IT... : 1 } years). As well as the normal one player game, | Hundreds of questions, on a wide variety of ] ExT has gone one better by giving you TWO ie iS Miers eet art Il player action - competing against cach other, | includes a question editor so you can cr in full glorious technicolour - at the same time. | YOU" own sets of questions, This is the game I] It even has a novel feature in a SAM game - a | YOUCAN never grow out of. I] High Score Table, how many others have that? | _ £9-95 (£8-95 to INDUG members)

|] Avoid the meanies, collect the bonus points, |] ump, Hover, Fly - what more do you want???

£9-95 (£8-95 to INDUG members)

Written by industry mega-star Matt Round -

‘More Games Coming Soon Send SAE for full list of available games.

REVELATION FOR THE VERY BEST IN SERIOUS SOFTWARE

~THE SECRETARY - The most advanced|~COMET Z80 ASSEMBLER - The SAM jword-processor for SAM. powerful, versatile and | assember many professionals use, yet easy jeasy to use. NEW Version 1.5 Available Now - | enough for the beginner - 80 why settle for second The BEST just got better £14.95 (|NDUG £12.95) | best? £29.95 (INDUG members £21.95)

DRIVER works with the SAM Mouse (no mouse D R Vv E R should be without one) or Keyboard. It provides The Graphical Userinterface for SAM | full WIMP (Windows, Icons, Menus, Pointers)

system that puts you in full control of your SAM. ‘Comes complete with many buil-in utilities and ready to run applications, Full manual and a disc-based tutorial. DRIVER gives you the ease of use only found on big office computers before. So easy to use yet so powerful. Fantastic Value £29.95 (INDUG members £24.95)

Ww V1 x! DRiVER's Extras Disc still available for existing users at £5.95 (INDUG members £4.95)

SCADs PD Yes, at last, we are pleased to re-release SCADs - the arcade game development system for SAM, Previously sold by Glenco at £24.95 we have now placed the software into the Public Domain so the disc costs you Only £2.$0. The full manual (over 200 pages) is also available for £12.95 (overseas please add an extra £1 to postage rates below because of weight)

{i prices incude UK postage and packing (Europe please ad Ether overseas pewve wd 2)

+ Payment by UX cheque ( made payable to Revelation Sofware). PO or cash Sorty bu we cart accept orders by Euto-cheave or Geo Please Quote INDUG membership umber clearly on err it lamang discount

Reveiction + Send orders to re Revelation Software, 45, Buddle Lane, Exeter, EX4 1JS.

SHORT + SPOT

YOUR HINTS, TIPS AND PROGRAMMING IDEAS

February brings the sleet; clanking drives and PSU heat! Spring is in the air and it’s Short Spot time again!

Again, there is the usual interesting array (as it were) of problems. Peter Williamson of Sleaford had one (a problem with arrays - on SAM), and solved it, It goes something like this,

During the last few weeks of 1996, Peter had been trying to develop a data file on his SAM for use as a diary for the coming year. I would have liked to have used it in the Christmas issue, ‘cos that's when we all give diaries, but this letter was posted on 19th December, and the sequel on the 24th! Anyway, back to the data file for the diary! The usual way to do this is to declare a string array with 365 fields, with each field a specified length. The problem with a diary in that some days there will be a lot of entrie: while on others there will be hardly anything. The ideal way would be not to have a string array, but an array of separate strings. With a string, one does not have to declare the string’s length, so it can be from zero to 65520 characters long. The problem is how to generate 365 separately named strings. As a string can have numbers in its name as long as the first character is alphabetic, this means we can have strings named, say, D1$ to D365$ quite legally. The problem now is how to generate these. Peter looked for a solution through the KEYIN command, and after several hours of trial and error, the basic (basic with a

Edited By:- John Wase. small b!) method evolved

To manipulate the names of strings by the program, you must make that string the contents of a ‘host’ string. In Peter's program, the host strings are A$ and BS. Having manipulated the name of the ‘tenant’ string, which will be D0008, with the zeros changed to some number or other, one now has to remove the ‘tenant’ string and replace it in the program. In SAM Basic, KEYIN does just that. Peter finds that KEYIN is rather a temperamental command: one has to get the syntax just right, otherwise the dreaded error message appears, “not understood". He spent a lot of time satisfying KEYIN's syntax!

KEYIN is not very quick. Type in the ‘diary’ program; then select the ‘0’ option on the menu. It'll take almost two minutes to generate the 365 separately named strings! Once they are done, it allows one to enter data into any specified string, erase the data or display the contents of any string. Peter suggests the program probably looks a bit weird, but it works! Never mind, Peter; it’s still a lot shorter than trying to type 365 lines of data in! Just a minute, though! Look carefully: there aren't enough strings for a leap year! It’s a good thing the program's still being developed to allow searching files for given keywords, and so on, isn't it! C'mon, get typin,

10 REM 1997 DIARY FILE

20 REM PROGRAM NAME "DIARY" 30 MODE 3: CSIZE 8,10: BORDER

100

110 120

210 220

230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400

410 420 430 440 450 460 470 480

1: PAPER 1: PEN 15: CLS

PRINT "ENTER: -" PRINT : PRINT * ILE GENERATION™

FOR F

PRINT : PRINT "**1"" TO EN TER DATA* PRINT : PRINT ***2"" TO CL

EAR A FIELD" PRINT : PRINT ***3** FOR S INGLE/MULIFIELD DISPLAY* PRINT : PRINT ***9"* TO SA VE FILE AND PROGRAM"

GET A: CLS

IF A=0 THEN GENERATE

IF A=1 THEN ENTRIES

IF A=2 THEN CLEARFIELD

IF As3 THEN SCANFIELDS

IF A=9 THEN SAVIT

GoTo 10

DEF PROC ENTRIES INPUT #2°SELECT DAY NUMBER FIELD INPUT #2*ENTER NEW DATA *; NS

LET A$=*LET DO00$=D000$+NS$

LET B$="PRINT DOOOS* LET B§(8 TO 10)=STR$ DN LET A$(6 TO 8)=STR$ DN LET A$(12 TO 14)=STRS DN KEYIN "290"+AS

KEYIN *310*+BS

LET D4 $=D4 $4N$

cLs

PRINT D4 $

PAUSE 1000

END PROC

DEF PROC SAVIT SAVE "DIARY" LINE 10 END PROC

DEF PROC CLEARFIELD INPUT #2*SELECT DAY NUMBER FIELD FOR CLEARANCE *;DN LET A$="LET DOOO$="" LET A$(6 TO 8)=STRS DN KEYIN "440"+AS

LET D4 Ser"

END PROC

DEF PROC SCANFIELDS INPUT #2°SELECT START DAY

NUMBER FOR DISPLAY *;S 490 INPUT #2"SELECT FINISH DAY NUMBER FOR DISPLAY *;F 500 CLS 510 FOR DN=S TO F 520 LET AS="PRINT DOOOS* 530 LET AS(8 TO 10)=STR$ DN 540 KEYIN "S60"+A$ 550 PRINT INVERSE 1;*DAY NUMBE

560 PRINT D3 $

570 NEXT DN

580 PAUSE 1000

590 END PROC

600

610 DEF PROC GENERATE

620 LET Q=700

630 FOR X=1 TO 365

640 LET Q=Q+1

650 LET AS="LET DOOOS="**** 660 LET AS(6 TO 8)=STRS X 670 KEYIN STR$ Q+A$

680 NEXT X

690

1070 END PROC

‘Trouble with keen programmers is that this always happens... I find there's another, later letter. What have we here? Well, the sequel, posted on Christmas eve - FORMAT never sleeps!

Peter writes that he has now added several improvements to his program. In the GENERATOR procedure, Peter found it unnecessary to have KEYIN write the generated strings to separate lines, which, of course, extended the program length enormously, and used up lots of RAM. After experimentation, he found that KEYIN can repeatedly write to the same line. Although the program above does work, and don’t forget it, it can, on the basis of this finding, be improved by deleting lines 620 LET Q=700 and 640 LET Q=Q+1. Line 670 now reads KEYIN "690" +A$. Lines 701-1065 are, now, also redundant, as one might expect.

Instead of merely generating empty strings, Peter has coupled this program

with another one he had that generates a calendar. String array C$(365,35) carries the day, date and month of the year. He now loads this data into the empty strings as follows:

LET A$="LET DO000$ = C$(000)

LET AS(6 TO 8) = STRS X

LET A$(14 TO 16) = STRS X

KEYIN "690*+AS

Incidentally, Peter’s been doing some timings, and reckons that the KEYIN routine must be the slowest acting command in SAM Basic. Loading an empty string 365 times took just under 2 minutes; loading strings with content took considerably longer. While this little exercise using KEYIN to generate strings from within a program has been fascinating, it's also been time consuming and frustrating. “Does the SAM C language have this facility, for it would be well worth finding a way of cutting time here,” asks Peter.

Well, could those C afficionados perhaps drop us a line on how (if at all) this could be done with SAM? Many thanks, Peter, and we look forward to some interesting sequels.

Staying with SAM (guess that's what's been sent in), we have an appeal to our readers., Vic Taylor of Weymouth, Dorset, asks about the expansion memory and RAMdiscs, and my knowledge of this is poor. Vic writes, asking for an explanation of the way the 1Mb expansion memory works. He understands that if one sets up a RAMdisc, then the expansion memory is automatically used first.

Vie wants to know if there are any other ways in which the extra memory is automatically used, and are there ways in which the memory can be used for Basie programming. Vie has a 512k SAM with a IMb expansion pack, and he

9

normally uses MasterDOS plus MasterBasic 17, Oh, and at 79 and learning fast, he currently can’t cope with machine code or C.

Well, I'm no expert on this! Anyone care to send letting us know something about the intricacies of the 1Mb RAMpack?

Next, still with SAM, Mr P. Ahamed Basheer of Abu Dhabi, a familiar name to many of our readers, writes with a program that is also useful to DISCiPLE and PLUS D users, too. Wow; everyone catered for. I like it,

Here we are; a 512k SAM program which needs MasterDOS to run. The system disc provided with SAMDOS2 has a backup routine which lets you back up an entire disc in 4 swaps. The routine is slow, since it accesses only one sector at fa time, and the backup normally takes around 13 minutes. By making use of the multi-sector access capability of MasterDOS, the whole backup can be done in about 3 minutes. It still needs 4 swaps, though, and some bright spark should be able to reduce the time to about 2 minutes if 600 sectors are dealt with at a time, rather than the 400 sectors Miles has used. Once you've done it, the program can be used to back up DISCiPLE and PLUS D discs as well, so Spectrum owners don't lose out if they've got a SAM as well. I wonder if it would backup IBM PC-compatible discs, or, for that matter, Discovery discs. Worth trying.

5 REM Sector Copier for Sam

7 REM Needs MasterDOS

9 REM By P.A.Basheer,Abu Dha bi

10 CLEAR 32767:

15 mast

17 READ AT 1,0,1,40000,400

39 targ 40 WRITE AT 1,0,1,40000,400

49 mast 50 READ AT 1,40,1,40000, 400 55 targ 60 WRITE AT 1,40,1,40000,400 65 mast 70 READ AT 1,128,1,40000, 400 75 targ 80 WRITE AT 1,128,1,40000, 400 85 mast 90 READ AT 1,168,1,40000, 400 95 targ

100 WRITE AT 1,168,1,40000,400 110 PRINT *Copy finished. *

200 DEF PROC targ

250 PRINT “Insert target disc.

-Press a key.": PRINT : PA USE 0

300 END PROC

DEF PROC mast

450 PRINT PEN 6;*Insert Master

disc..Press a key.": PAUS EO 480 END PROC

Many thanks, Ahamed, and good to hear from you again,

Finally, here's a program for the Spectrum (there, you thought I'd forgotten you, didn’t you), from our old friend Miles Kinloch of Edinburgh.

Have you ever written a piece of prose about something abstruse, filed it, and then forgotten where you put it? Miles has a solution - ‘Sector Search’. This will look through selected sectors of a disc for fa given sequence of bytes. So you can find that elusive piece of prose about left hand threaded double-wicket sprockets with no trouble at all, More, even than that! It will replace each occurrence of the chosen bytes with an alternative sequence of the user's choice.

Beware, though. This is potentially a very destructive program. As it is irreversible, it could have disastrous consequences! Use a duplicate disc rather than taking the risk of losing any important data!

When used with BetaDOS, the program exploits the latter's multisector

10

cask

run

An

LOAD @/SAVE @ facilities, making it considerabley faster G+DOS. To take advantage of this, BetaDOS owners should omit the REMs in the lines indicated, Although these commands are in conditional statements, the syntax itself can’t be entered under G+DOS.

‘The ‘search$’ will be found even if split between two sectors, provided the sectors concerned are consecutive, Catering for these circumstances actually accounts for much of the program's complexity, and is also the reason for the search being carried out in two stag first of these, every complete track is examined; then in sector of each track is comparison with the first sector of the next, since the two sectors over which the string is split may belong to adjacent tracks, a possibility that needs to be allowed for.

than with

. In the

the second, the last loaded for

interesting (and slightly wicked)

thought which occurred to Miles was that you could use the program on itself, to change all the instances of ‘disk’ to ‘disc’!

Note, by the way, that the routine is

ensi do both upper and lower case!

, 80 that you would have to

Here's the program.

60

70

REM REM REM BORDER 0: PAPER 0: PEN 7: C LEAR 38999; GOSUB 1000 INPUT *READ INSTRUCTIONS /N)? "; LINE i$: IF ig=*y* OR i$="y* THEN GOSUB 780: C LS : GOTO 70

IF i$<>*N* AND i$<>*n* THEN BEEP .8,-15: GOTO 50 INPUT "ARE YOU USING BETADO S (Y/N)? "; LINE bS: IF b$< >*Y* AND b<>"y*" AND b$<>"N * AND b$<>"n" THEN BEEP .8,

DISK SECTOR SEARCH (PD) By Miles Kinloch

110

120 130 140

150 160

170 180 190

200

210

220

230 240

15: GOTO 70

LET b= (b$="Y* OR bS=*y") INPUT "USE WHICH DRIVE? *; : IF d<>1 AND d<>2 THEN BEE P .8,-15: GOTO 90

INPUT "HOW MANY FILES IN DI RECTORY"! "FORMAT? *;f: IF £ <80 OR £>780 OR £/20<>INT ( £/20) THEN BEEP .8,-15: GOT © 100

GOSUB 760: INPUT "LOOK FOR (T)EXT OR (N)UMBERS? "; LIN E t$: IF t$="T* OR t$="t* T HEN LET text=1: POKE 23658, 0: GOSUB 450: GOTO 140

IF t$<>"N" AND t$<>"n" THEN BEEP .8,-15: GOTO 110

LET text=0: GOSUB 550 GOSUB 760: CLS : PRINT ‘INS ERT DISK THEN PRESS ANY KEY =": PAUSE 0

REM SEARCH ROUTINES

CLS : PRINT "SEARCH PHASE 1 "; AT 6,0; "OCCURRENCES: 0*: DIM w(9,2): LET count=0: P OKE 40005, (5101-m)-256*INT ((5101-m) /256): POKE 40006,

INT ((5101-m) /256): POKE 40 024,m: POKE 40047,9: POKE 4 0072,9: POKE 40074,19: POKE

40075, 180: POKE 40077,37: POKE 40078,180 FOR n=f/20 TO 207: THEN LET n=128 PRINT AT 3,0;"CHECKING TRAC Kin

IF b THEN REM LOAD @d;n,1,4 1000,10: REM Un-REM if you have Betados. (Statement do esn't pass syntax with G+D0 8.)

IF NOT b THEN FOR s=1 70 10 : LOAD @djn,s,41000+512* (s- NEXT 5

LET v=41510: FOR c=1 TO 9: LET w(c,1)=PEEK LET w(c, 2)=PEEK (v+1): LET v=v+512:

IF n=60

NEXT c: RANDOMIZE USR 4004 z

LET a=0

LET p=USR 40000

IF p AND text THEN LET coun t=count+1: PRINT AT 6,13;co unt: FOR a=1 TO m: POKE pta -1,CODE c$(a): NEXT a: GOTO

11

250

260

270

280 290

300 310

320

330

340 350

360 370 380

390

400

230 IF p AND NOT text THEN LET count=count+l: PRINT AT 6,1 3;count: FOR a=1 TO m: POKE Pta-1,y(a): NEXT a: GOTO 2 30 IF a THEN RANDOMIZE USR 400 66: LET v=41510: FOR c=1 TO 9: POKE v,w(c,1): POKE v+1 sw(c,2): LET v=v+512: NEXT c: IF b THEN REM SAVE @d;n, 1,41000,10: REM Un-REM for Betados. IF a AND NOT b THEN FOR s=1 TO 10: SAVE @d;n,s,41000+5 12*(s-1): NEXT s NEXT n PRINT AT 0,13;*2": POKE 400 05, (1021-m)-256*INT ((1021- m)/256): POKE 40006, INT ((1 021-m) /256): POKE 40047,1: POKE 40072,1: POKE 40074,35 POKE 40075,164: POKE 4007 7,37: POKE 40078, 164 FOR n=£/20 TO 206: IF n=80 ‘THEN LET n=128 PRINT AT 3,0; "CHECKING TRAC K ";n;*/*;STR$ (n+1) AND n< >79;STR$ 128 AND n=79 IF b THEN REM LOAD @djn,10, 41000,2: REM Un-REM for Bet ados. IF NOT b THEN LOAD @djn,10, 41000: IF n<>79 THEN LOAD @ djn+1,1,41512 IF NOT b AND n=79 THEN LOAD @d;128,1,41512 LET w(1,1)=PEEK 41510: LET w(1,2)=PEEK 41511: RANDOMIZ E USR 40041 LET a=0 LET p=USR 40000 IF p AND text THEN LET coun t=count+1: PRINT AT 6,13;co unt: FOR a=1 TO m: POKE pta -1,CODE c$(a): NEXT a: GOTO 370 IF p AND NOT text THEN LET count=count+1: PRINT AT 6,1 3;count: FOR a=1 TO m: POKE pta-1,y(a): NEXT a: GOTO 3 70 IF a THEN RANDOMIZE USR 400 66: POKE 41510,w(1,1): POKE 41511,w(1,2): IF b THEN RE

410

420

430 440

450

460

470 480

490 500

510

520 530

540 550 560

570 580

590

600 610 620 630

M SAVE @d;n,10,41000,2: REM Un-REM for Betados.

IF a AND NOT b THEN SAVE @d in,10,41000: IF n<>79 THEN SAVE @d;n+1,1,41512

IF a AND NOT b THEN IF n=79 THEN SAVE @4;128,1,41512 NEXT n

RANDOMIZE USR 56: STOP : RE M Ensure interrupts are ena bled before returning to BA sic.

GOSUB 760: INPUT "ENTER TEX T TO FIND (2-255 CHARS)*' L INE a$: IF LEN a$<2 OR LEN a$>255 THEN BEEP .8,-15: GO TO 450

PRINT "LOOKING FOR TE vaghens

LET m=LEN a$: DIM c$(m) GOSUB 760: INPUT “REPLACE W ITH? *' LINE g$: IF LEN g$> m THEN BEEP .8,~15: GOTO 48 0

PRINT "REPLACING WITH: "''g$ GOSUB 760: INPUT "CORRECT ( Y/N)? *; LINE u$: IF uS=*N* OR u$="n" THEN CLS : GOTO

'y" THEN GO

BEEP .8,-15: GOTO 500

LET c$=g$: FOR a=1 TO m: PO KE 40099+a,CODE a$(a): NEXT a

RETURN

DIM x(255): DIM y(255)

CLS : PRINT "SEQUENCE OF BY TES TO SEARCH FOR:"''

FOR m=1 TO 255

GOSUB 760: INPUT "ENTER EAC H NUMBER IN TURN (JUST ENTE R ON ITS OWN TO FINISH)"* L INE 2§: IF NOT LEN z$ THEN GoTo 620

LET z=VAL z$: IF z<0 OR z>2 55 THEN BEEP .8,-15: GOTO 5 80

LET x(m)=z: PRINT z;","; NEXT m

LET m=m-1

IF m<2 THEN CLS : PRINT *AT LEAST 2 NUMBERS, PLEAS! BEEP .8,-15: GOSUB 760: PA USE 70: GOTO 560

12

640 GOSUB 760: INPUT “CORRECT ( Y/N)? *; LINE u$: IF uS="N* OR uS="n" THEN GOTO 560

650 IF uS<>"Y" AND u$<>*y" THEN BEEP .8,-15: GOTO 640

660 CLS : PRINT "INPUT THE BYTE 8 TO REPLACE WITH:

670 FOR TOm

680 GOSUB 760: INPUT “ENTER EAC H NUMBER IN TURN (JUST ENTE RON ITS OWN TO FINISH)"' L INE 2$: IF NOT LEN z$ THEN Goro 720

690 LET z=VAL z$: IF z<0 OR z>2 55 THEN BEEP ,8,-15: GOTO 6

700 70 720

"CORRECT (

i LINE u$: IF u$="N*

"n" THEN GOTO 660

730 IF u$<>"¥" AND u$<>"y" THEN BEEP .8,-15: GOTO 720

740 FOR a=1 TO m: POKE 40099+a, x(a): NEXT a

750 RETURN

760 IF LEN INKEY$ THEN GOTO 760

770 RETURN

780 CLS : PRINT BRIGHT 1; PAPER 1; PEN 77" INFO AND NSTRUCTIONS ue

790 PRINT "This utility lets yo u search a disk for any gi ven text string or sequenc e of numbers, replac- ing t his with another string at every occurrence. The progr am searches the whole dis k, apart from the director y sectors, and if using Bet ados you will be asked h ow many catalogue entriesth e disk has been formatted f aesen

800 PRINT “The search-and-repla ce works on a Procrustean b asis; in other words, the replace string can never be longer than the search string, and if shorter, wil 1 be filled out with spaces (if text)or zeros (if numb ers) to make itup to the sa me length.*: GOSUB 830

810 CLS : PRINT "The program co

820

830

1000 1010

1020

1030 1040 1050 1060 1070 1080 1090 1100 1110

1120 9999

Many thanks, Miles.

Some of the more astute of you will have noticed that this Short Spot is a little less varied than most, and some of

uld be useful if you have many files all needing exac tly the same change ~ just put them all on one disk a nd do them in bulk.* PRINT "The y not be pens to be split between tw © NON-CONSECUTIVE secto rs in a file: this could be the case if you have erased anything on the disk a

nd then subsequently save d onto it. The best solutio n would be first to transfe x the files of interest to a blank, newly-formatted d Askwith SAVE...T0, then per form thesearch on this new disk.*

PRINT #0; AT 1,22; "ANY KEY> >>": PAUSE 1: PAUSE 0; RETU RN

REM CODE POKER RESTORE : LET c= 000 TO 40090: READ sctd: POKE a,d: NEXT a

IF c<>11420 THEN BEEP .8,-1 5: PRINT "ERROR IN DATA ~ P LEASE CHECK.": STOP

DATA 243,17, 40,160,1,236,19 +205, 82,156

DATA 19,11,120,177,32,247,2 51, 201,197,213

DATA 33,164,156,6,1,26,190, 32,9,19

DATA 35,16, 248, 193,225,225, 251,201, 209,193

DATA 201, 243,1,254,1,197,62 +9,33,40

DATA 162,17,38,162,193,197, 237,176,35,35

DATA 61,32,247,193,251,201,

243,1,254,1

DATA 197,62,9,33,19,180,17,

37,180,193

DATA 197,237, 184,27,27,61,3 2,247,193, 251,201

RETURN

SAVE @1*SECTSEARCH* LINE 10

FOR a=40 LET c

13

you will have sent in pieces that haven't been printed. Unfortunately, we have had considerable and serious illness in the house for the past several months, and it's been even worse than usual for the past few weeks. I've therefore cheated with a few fairly big pieces to keep the column going this month! My apologies for omissions. 1 have high hopes that things will be better soon. We'll hope so!

So please keep all your snippets coming to me; although I didn’t use them all, I will do next month, and without them I can't put a column together. Please send them to:-

John Wase,

Green Leys Cottage, Bishampton, Pershore,

Wores,

WR10 2LX.

See you next month.

SAM REPAIR SERVICE

We are pleased to be able to offer readers lan official, West Coast approved, repair service for SAM Coupé and SAM élite! Icomputers and add-ons. PRICING Because every fault i different we cant [guarantee a fixed rate, When we receive your machine it wall be tested and, if itis going to cost more than [E35 for the repair then we will contact you for authority to continue Pack your machine well (we will use your packing for ts retum). Please phone us on 01452-412572 for advice on dispatch (we can even arrange UK Mainland collection and overnight delivery for an extra £12.98) in many cases we can also give an estimate over the} phone. All repairs retumed by overnight carrier so tel us which days there willbe someone i to sign forthe parcel. Please quote your INDUG membership number and give a evening contact phone number [Send your machine t=

Format (SAM Repairs), Bourton Rd, Gloucester, GLA OLE.

The definitive database for the SAM Coupe ... is still the personal filing system from the keyboard of Jack Gibbons (author of the best Banking programs in the world!)

1000's of uses asy to use - on screen help - scrolling summary displays with oom, plus page up/page down, home/end, locate record - four print formats, summary, detail, label and mail merge - uses all memory/disk space - massive data storage, over 1 MEG® - desigivre-design ser time - inbuilt totalling - ficld validation - table lookup/validation - WYSIWYG sereen and report design - add/change your file structure any time - automatically restructures your data - uses index and random access files* - password control - operates on any SAM Coupe, 1/2 drives, 256/512K, can use 1 MEG memory expansion® = RAM drives - $0 page user manual ~ after sale support - auto-configures for 1/2 drives, 256/512K RAM, SAMDOS, MasterI9OS/MasterBASIC, 1 MEG (no need to edit program) Send £19.95 (inclusive of p&p) specifying SAMDOS(512K) or MasterDOS/MasterBASIC

can store anything - change it - sort - search extract - very

Warning ... not having a personal banking system can seriously damage your health!

If your finances are driving you mad, then we may have the answer lo your problems Over the last 15 years, the PBS has cured thousands of cases, resulting verys

ied and sane clients, Keep track of your finances, spanning all Bank, Building Society and Credit Card accounts - avoid expensive overdratt letters and bounced cheque charges - automatic posting of standing orders & direct debits for any frequency and for a set number of payments - extensive, flexible enquiries eg how much have you paid (o the supermarket cach month - forward projections (o cnable you to plan how much money you have lefl to live on - detailed Bank statements, more up-to-date than the ones from your Bank, ete - password controlled - on-sereen limit monitoring so you know immediately if you are going into the red ~ Bank reconciliation so you can check the statement received from your Bunk and see where they have gone wrong - suitable for private, club or small business - optional VAT facility - optional categories for analysis, account and GL codes with on-screen lookup feature - on sereen help - 75 page user manual - after sale support Prices (SAM Coupe/Elite - all models): PBS - £19.95; PBS Budget module - £9.95 Upgrade to PC version for just £19.95. Versions available for other computers eg BBC, CPC, QL. PBS 1 for the Spectrum (all models) on cassette, microdrive, MusD/Disciple and Opus for £12.

Hilton Computer Services Ltd 143 Kingfisher Drive, Guildford, Surrey, GU4 7EY

or @ 01483 826375 and pay on receipt of order. (*requires MasterDOS/MasterBASIC) Buy with confidence - over 14 years in business: other products available - send SAE for detaits

14

Part 4.

Welcome once again, to another instalment of SAM C. As I promised you last month, we will kick off with a nice little game.

LIGHT CYCLES (SORT OF)

Well, once again its time for the monthly program, and again I hope it includes most of what I've explained in this months article. Once again the program is game based, so sorry to anyone who's not particularly into ‘that sort of thing’. Most SAM owners will have played a Light Cycles style game at one point or another, and that is what this months program is based around, It involves ‘driving’ your point around the sereen attempting to ctay alive for as Jong as possible - by avoiding driving into your own path or any other object on screen. Lastly, before I start, there are a few functions and header files ‘used in this program which have not yet been described so sorry about that. However, where that has happened I'll describe those functions as far as required for an understanding of the program, leaving the full explanation till a later article. Right, enough of that, lets get started.

Winclude she #include #include Winclude #include

char pal(16]=(0,4,12,65,67,73,75 86,116,116, 94,94,124,124,127,12 an

char xp, yp, xd, yd;

main()

{ unsigned int count;

By:- Martin Fitzpatrick. char end, ky;

‘This first section of the program is, as always, used to set up variables and load header files that are needed by the program. As mentioned above, you might not be able to recognize some of the names of these header files, but description so the functions used from them will be given when required. There are four variables set up as global in this program: xp, yp, xd, yd. These are used to hold x position on the sereen, y position on the screen, x direction of the point and y direction of the point. Inside the main() function variables are set up for looping, and the global variables shown earlier are reset to the required values - placing the point near(ish) to the middle of the screen and setting it not to move. The ‘ky’ variable is used to hold information about the current key pressed. Last time, I mentioned that variables can be set at compile time using a statement such as char xp=0; however, when I tried this it refused to work correctly. You might like to try this yourself as if it does work the code produced will be smaller and more efficient - not that it will affect much in this program, but its good to get into the habit. The count variable holds the time the player has managed to remain alive (by not crashing) in the game and can be treated as the score, The global array variable pall } holds the values of the palette from 0-15. The palette provided is a grey/green scale, but any other palette can be substituted.

15

allpalette(pal) ;

pen(15);

plot (xp, yp);

create();

do(changed () ; }while ( (yd+xd)==0) ;

This short section is used to set up the playing area, he current palette is changed to the values in pal, using the allpalette function. ‘The colour data is passed using a pointer (which I mentioned briefly earlier), and that is why no index (number of point in array) is required. Like I said earlier it really is quite complex, and so I'll come back to it later (maybe next time). The pen colour is then changed to 15 (which is bright white in this palette) and a point is placed on the screen at the current xp and yp co-ordinates (128,100). The create() function is then called and then screen is set up.

The next loop calls the changed() function (which reads the keyboard and updates the direction variables ‘xd’ and ‘yd’), The values of these two variables are added together and if the result is equal to 0 then loop restarts.

‘The values are shown in this table:-

X Direction Y Direction Result

Up ° 1 1 Down a Left ry Right 1 o 1

Se, because a diagonal direction is not allowed the only possible result of xd+yd when a direction key is pressed is either +1 or +1, which both cause the loop to exit (because they are non-zero values).

do (

pause (1);

ky=inp (254);

if (ky!=31) changed (ky) ; end=update();

at (0,0);

printf (*%d", count); count++;

eure (escape () &&end==0) ;

This section forms the main part of the program and is based around a DO loop which calls the various functions at the ts required in the program. So, tly the loop is set up, the loop conditions are left to the while command at the end, because whether or not the loop ends depends on a variable which is changed inside the loop. ‘The position of the loop conditions do not actually have any effect in this example because either way, the loop would stop repeating the loop when the conditions are met, however it is much more logical to write the loop in this way, and it may well increase performance.

NOTE: The only real time you need to place the loop control variables at the beginning of the loop is when you want the conditions to be checked before the loop runs through the first time. Once the loop has started it has little effect,

The pause in the next line (for 1/50th of a second) is basically a setting to alter the speed of the program - without this pause the program runs too fast, The variable ‘ky’ is assigned the current value of port 254 through the function inp( ) - which is equivalent to the Basic IN command. Port 254 holds the value of the current key pressed - this i simply an ASCII value however, and this requires some explanation - except the keys I have used all produce separate values, with the value 31 being produced when no key is pressed.

The value stored in the ‘ky’ variable is then checked against 31 to see if a key is being pressed, and if this is the case the value stored in ‘ky’ is passed on to the changed( ) function. The variable ‘end’ (which is the loop control variable) is then set to the result of the update() function (see later),

The next block of the program is used to display the ‘score’ which is held in the count variable. First, the print position

16

is changed to 0,0 (top left hand corner) and printf prints the value of count in decimal at this point. ‘The variable count is then incremented (to give the effect of increasing the score every loop). It's worth noting that the last two lines can be shortened to:-

printf (*8d", count++)

and this is how you would see it written in a professional C program.

The while command then checks that the escape key isn’t pressed (using the eseape( ) function from the stdio.h file ) and that ‘end’ is equal to 0. If both these conditions are true (i.e. if escape is not pressed while the variable end is set to 0) the loop repeats... otherwise the loop exits and the program ends. Lastly the main function is ended with the | symbol.

changed(char c)

{ Af (c==30) {yd==1;xd=0;) if (c==29) (yd=-1;x%

The first function (other than main obviously!) is the changed (char c) function which is used to change the direction of your dot. ‘The variable ‘c’ is passed to the function when it is called and holds the value obtained from the inp(254); in the main function. The reason the value is passed in this way (instead bf simply calling the inp(254) function again) is that it requires fewer calls to the function - which improves speed. Also, C sometimes modifies repeated calls to a particular variable that has not changed by either placing it in a register or optimising the code - this also brings improved speed and is worth remembering when writing your own code. NOTE: Unless there are memory restrictions, always store values that are used frequently in variables (possibly initialized with the register command).

‘The four values 30, 29, 23, 27 relate directly to the keys A, Z, N, M (Up,

Down, Left, Right), and are used to work out the desired current direction, For example, if the key N is pressed, the value at port 254 (and so the variable c) is 30. The variable ‘xd’ is then assigned -1, and ‘yd’ is assigned 0, indicating and upwards movement.

update () { static char col;

yp xpt=xd; if(getpixel (xp,yp))return 1;

pen((col++)&15); plot (xp, yp) ; return 0;

d

The update function (unsurprisingly) updates your point on the screen, and also performs the process of collision detection. The first line sets up a char variable called ‘col’, which is used to hold the current pen value (0-15), ‘The value is also set up with the static modifier which means that the variable maintains its value between calls of this function, along with any changes that are made to it - much like a global variable except this variable is available only to this function. ‘The next lines increase ‘yp’ by ‘yd’ and ‘xp! by ‘xd’ - which makes the point continue in the direction of xd, yd. This allows for constant movement while no keys are pressed as the computer continues to update the points position.

In the next line the pixel at xpyp (current position) is read. This is done here because if the point was plotted first, the value of the current point would always equal more than 0 (except when the pen is equal to 0!) Again, the value of getpixel could be placed in a variable, except in this case there would be no real advantage. If the dot has collided with another point on screen the function returns 1, which is placed in the variable end. This has the effect of quitting the main loop when a collision occurs.

17

The next bit is a bit complicated, and features something not yet covered - binary logic (wahey, sounds fun!).... We already know that the pent ) function is used to change the colour of the pen. In the brackets there is another set of brackets which contains an instruction to increment a. So, so far this line is equivalent to col++; pen(col); Next we add &15 (which is the binary logic part)...

This is linked with all that stuff I garbled last month about the way numbers are stored e.g. 8 Bit numbers are made up of eight bits, each representing its own value. These bits are set to on or off, and if set to on their value is added to the total. For example looking at the table below:-

128 64 32 16 8 4 21

the value 128 would be represented by 10000000, and the bit pattern 10101010 would be equal to 170 decimal. So, if you look at the bit pattern for the number 15:- 128 64 32 16 8 4 21 O80! 200d sy 1.

you can see, it is arranged in one continuous block from 8 to 1 and so covers all the numbers between 15 and 0.

Back to the program... The & operator between 15 and the variable col, means that a binary AND is performed on these two numbers. The logic table below explains how this works:-

AND X = Y Result as ace ts AOte 140, oe Re SAG Sh aid

So, each bit in the current value of col, is checked against the bit pattern of 15. Because in the bit pattern of 15 only the values below 16 are set to 1. This has the effect of discarding all the bits above this point in col. The end result being that the maximum value of col is 15 and the

18

minimum is 0, even if the value is constantly incremented (as in this example) reducing the need for repetitive if statements which slow down the program dramatically.

Tl explain that in more detail, along with all the other operators, some other time, because I'm not sure I can cope just now! Anyway, back to the program (that is what we're here for after all!)

Underneath the pen statement, the update( ) function is finished off with the plot command, which places a point on screen at the current point xp, yp and then returns 0 into the end variable to prevent exiting of the program. create t) unsigned char a,b;

1176; a+=16) { 240; b+=16) { box (8+b, 8+a,2,2); box(10+b, 10+a, 2,2);

) }

This small function is called at the beginning of the program to set up the screen. Two variables are initialized for the for loops, and then the loops are started. They are embedded giving the effect of the outer loop incrementing only after the inner has completed. In this case the effect is a screen of boxes that moves from bottom to top, in rows which move from left to right. Lastly, the ".c” files have to be loade #include *graphics.c* #include - #include ce include *stdlib .c*

That's the program finished for this month, time to dash off to the post office to catch the post. Again, if you have any questions, comments, or program ideas then you can contact me through the FORMAT office and I'll see what I can do.

LoKti

The Machine That Never Was.

We all know the ZX Spectrum, in one form or another it was the biggest selling home computer in the world for many years. We also know of the ZX81 and even the ZX80 which preceded Uncle Clive’s masterpeice. But have you heard of the Loki? No, you haven't? Not surprising, very few have, You see it never made it to the market place, it was one of Uncle Clive’s dreams that never saw the spotlight of public aclaim, Well here, for those of you that are interested, is at least part of the story.

As I said, the Loki was never actually released, though Amstrad made use of some of the keyboard designs (the Spectrum +2 was a slightly modified Spectrum 128 in what was effectively a Loki case).

At the time of the Amstrad deal, Sinclair was well advanced with development plans for a new Spectrum micro - the SuperSpectrum. Designed to replace the Spectrum 128 and retail at under £200, the SuperSpectrum was code-named ‘Loki’ after the Norse god renound as a ‘gamesplayer’. It was to have been an entertainment software computer with graphics and sound the likes of which had never been seen before even at five times the price.

Inspiration for the SuperSpectrum undoubtedly comes from Commodore's incredible Amiga machine. The key to the power of the SuperSpectrum (as with the Amiga) was to lie in its special custom chips, Loki was to have two

By:- David Thomas.

sophisticated chips handling the video screen (Rasterop device) and sound synthesis, both with direct memory access, This was to give the machine the potential to produce incredibly fast 3D graphics manipulations and sound of hi-fi quality,

But where the Amiga cost over £1,500 at the time, LOKI was to scrape in at a little under £200 on the shop shelves.

The trick was that Loki was still an S-bit machine. In fact, it even had a Spectrum 48K compatible mode if you wanted it, The processor it was to have used was a special up-rated version of the Spectrum’s Z80A. Called the Z80H. the new chip ran twice as fast, at an incredible 7 MHz. At this speed there was time to provide a fast interrupt handler that keeps pace with the video display while still leaving time to run programs faster than the Spectrum 48K.

But the real power of the micro came from the two custom chips. Because they had direct access to the memory during time which would otherwise be wasted ( a process known as DMA) large amounts of screen data can be moved about at speeds that the CPU couldn't manage, even if it had nothing else to do,

To match the CPU, fast-access RAM was required, and LOKI was to have plenty of that, being equipped with two 64K banks each made up of two 256K-bit chips. One bank was connected to both the CPU and custom-built Rasterop video hardware and normally held the

19

video information and sound waveform tables. This was part of the secret of the faster display, when the 280 was accessing the other bank, the video memory was free for the custom chip to do with as it wanted.

Bank switching enabled the 16-bit address bus access to all the RAM. An extension (4-bit) addressing system was to allow a total address space of 1 Mbyte. Two banks were, in normal operation, occupied by ROMs, but the rest can be paged with RAM and there was to be a mode where all of the memory could be RAM to allow for other operating systems like CP/M to be loaded (see below).

One feature that was to mark out LOKI as different from every Sinclair micro before was the keyboard (as I've said, very similar to the +2's) suitable for the fastest of typists. With word- processing then fast becoming such a major attraction to people who would not consider buying a computer for games, a good keyboard was considered essential. Another change was the lack of keyword legends associated with 48K Spectrum Basic. The Basic was to have been a development of the QL’s SuperBasic and an additional method of entering information will be via a light pen/barcode reader which may even have been made available as standard,

The machine was, as I've said, to be Spectrum 48K compatible. Inside LOKI were faithful copies of the old 48K ROMs. The video hardware could switch to the old format and the CPU clock slowed down to 3.5Mhz. With the same cassette interface available, it seemed likely then that a high proportion of Spectrum software would run in this special compatible mode. However, you would not have been able to write

Spectrum Basic programs as the old Basic Rom was hidden from the user, though programs which use it were able to access it when loaded, There were also no plans to include the sound chip from the 128, so true 128 compatibility seemed unlikely.

The display quality relied on using around 53K of RAM for the screen. Even at 7Mhz a Z80 could not have manipulated this amount of data quickly enough to give reasonable animation, 80 the custom-designed graphics Rasterop chip was essential. It transferred 8-bit data in the video area from one address to another, and in the process could carry out logical functions using data from the destination and source addresses and its own masking registers,

Animation and selective screen scrolling becomes an automatic process with the CPU only sending a few instructions during each line interrupt.

Another idea taken from the Amiga is line drawing hardware - LOKI was capable of remarkable 3D wire-frame graphies. At the time the project was dropped, the software for this was already very advanced - a program like Elite would have been fantastic on LOKI. The screen mode that was considered to produce the best games was to have a 256 by 212 pixel resolution and 64 colours. A single byte was used for each pixel, leaving two bits spare for the Rasterop chip to use for ‘bobs’ (no, not a reference to the editor, it officially stood for Blitter OBjectS but they were often refered to as Bouncy Objects) that gave sprite-like animation and collision detection for multi-coloured graphic shapes.

The same principle of RAM sharing was to allow sound synthesis of a high quality as waveforms were stored in

20

memory. Sound output, produced by an S-bit digital to analogue converter, was piped through a TV speaker, stereo headphones or fed to a hi-fi system, An optional sound sampler was to have become available to record any sound and use it as a musical ‘voice’. A music keyboard for LOKI was also a possibility as an add-on and in this area Sinclair set their sights on the Atari ST.

While it’s easy to be blinded by this SuperSpectrum’s startling graphics and sound qualities there were two other features which could have been just as important to the machine's succe:

With the extra memory, program storeage was going to be important. Although LOKI was to have supported cassette tape (well most software compat at the time had heavy investment in tape _ duplication technology) another of Uncle Clive's pet projects ‘Softcards’ were looked on to become the new medium for program storage, giving instant program loading for users and piracy protection for software houses, These credit card size ROM cards were to hold a program of up to 1 Mbyte in size and they were going to be cheap to manufacture. Strangely there was no plan to upgrade the Sinclair Microdrives to work with LOKI.

‘The other feature which would have attracted a lot of users was the built-in CP/M operating system - add a controller and disc drive and LOKI would have become an Amstrad beater, running many of the same utilities as the Amstrad CPC and PCW computers.

The list of connections to the new machine was, for its time, very impressive. A fully buffered 280 expansion bus; RGB, composite and TV video outputs; provision for a later floppy disc system; serial printer port; twin

21

joystick ports; light pen; network and cassette ports; Midi In, Out and Thru; stereo sound input, output and Walkman-style headphone jack sockets were also there,

In addition, a genlock input which could lock LOKI's video hardware to video recorders, Laservision optical disc players and frame grabbers,

LOKI was not designed to equal the Amiga for speed but it was to come pretty close and could have been able to produce very similar effects at a fraction of the cost

When Amstrad took over the Spectrum the LOKI project was dropped. Sinclair was himself not able to produce and market another machine due to the terms of the contract with Amstrad (although he did find a loop-hole that led to the 288) and he was unable to get Amstrad to buy the rights - in fact they thought they already had the rights until they read the contract more closely.

Had it reached the market, at least four years before SAM did, it would have kept Sinclair at the top - where he always belongs. Sad that the Norse god of mischief did not see the light of commercial day in 1986, as it was we had to wait until the SAM Coupé came along to see many of the ideas from LOKI made available to the public.

Rae nt bagged

Ove to the success of our last show, on the 22nd of February the second Northern SAM & Spectrum Computer Show will take place in Wetherby, a town between Leeds and York and just off the A1. All the major SAM and Spectrum companies are expected to be there including Format, Fred, Crashed, Alchemist Research, Sintech, Persona, SD Software, and many more. There's also our very popular Sell, Swap & Buy stand. Doors open to the public at 10:30am and close at 4:30pm,

GETTING TO THE SHOW For people coming North, simply take the first turning for Wetherby, then {ollow the map on the right (youll end up at the lett-hand roundabou!)

I you'r travelling South, however, you should take the junction which is signposted for the ASB to Leeds

Once at the roundabout which is on the left-hand side of the map above, take

the exit to Wetherby (which should also have an NSSS sign), Once over the bridge, take the first lett. Follow this toad round, go over the pedestrian

The Second Northern SAM & Spectrum Show

February '97

At the Methodist Hall, Wetherby, West Yorkshire.

To/From At (North| ‘| Only)

Saturday 22”

To Knwosborough ‘And avrogate

"York

ToHagrogate

Street, to the entrance.

sing. Once past the crossing, tum right onto Bank "fie hal onthe let, with a driveway leading Up

| PARKING

There is limited parking behind the hall itsell but there are ‘many other car parks, most of them free, within a few minutes walk from the hall. Turing right after the bridge will take you to a free 200-space car-park, and the two car parks which are to the let of the hall on the map are also free. Allof these car parks are within a minute's walk trom the hal

Entry is charged at £1.50 for adults, under 10's are free. Advance tickets available for £1.00 from the address below. Doors open 10:30am - 4:00pm.

For stand bookings or information on public transport, places to stay, etc. then write, enclosing un SSAE, to: NSSS, 123 Potternewton Lane,

| Chapel Allerton, Leeds, LS7 3LW.

22

CP/M™ can

This is the first article I've ever writen for a magazine, So, although Bob has promised to do his best to edit the article into shape, I would like to appologize in advance if my ability to put things down on paper is not quite as lucid as other.

CP/M was one of the very early operating systems designed for use on microcomputers. There are at least three answers to the question “what does CP/M stand for?" Control Program for Microcomputers is the most generally accepted answer, but I have also seen Control Program for Microprocessors and Control Program / Monitor given in books and magazines. Even Gary Kildall (the original author of CP/M) has been known to give two different answers.

Anyone who has used DOS on a PC will soon get the hang of CP/M because, in many ways, the first versions of DOS back in the early 80s were straight steals from CP/M.

CP/M, will soon be more freely available, this is because a company called Caldera, based in the USA, purchased the rights to all the former Digital Research (DR) products from Novell and in September last year announced that the source code and fi for CP/M would be released for non-profit uses during the first quarter of 1997,

Until now developers have had to either buy the rights to use CP/M on their machines, or alternatively produce a clone which was ‘nearly’ CP/M but not quite.

Sleeping

By:- Darren Fowler.

CP/M is a very valuable tool for our computers - simply because it runs (in one form or another) on just about all 280 based computers and on a lot of non-Z80s as well. There are versions produced for the Amstrad CPC and PCW ranges (and this is where there is the greatest interest in the British CP/M scene), the Spectrum+3 and SAM. The SAM version, PRO-DOS Lite is still available from B.G.Services for £12.50 (it comes with a manual on disc so you can print it out yourself)

‘There is a fantastic amount of software written for CP/M, although it is true to say that there are so many different implementations of CP/M that actualy finding a peice of software to run on your particular system may not prove as easy as it at first sounds. However, your efforts will be rewarded if you keep trying.

There is a CD dise now being shipped in the USA, It contains over 19,000 files with executable programs, source code, documentation, and other materials, The publishers have trawled the bulletin boards of the world to come up with masses of items, some of which would be very difficult to track down any other They say there is the entire personal collections of several leaders in the CP/M community contained on the CD. You'll find:-

Assemblers, compilers, editors, code

libraries, programming tools, _dise utilities, word processors, spreadsheets,

23

calculators, printer drives, modem and Comms software, archive and compression tools, BBS software (both for users and operators).

There are also re-types of articles from user's group journals and other publications, some games, a mix of educational software and lots of help files on many different aspects of CP/M and the computers it runs on.

The CD also includes CP/M emulators and other tools for working with CP/M files under DOS, OS/2, and Unix. Many programs not only include the documentation but also complete source code.

Programs for all different computers fare on the dise: Kaypro, Osborne, Commodore, Amstrad, Starlet, and others, The disc comes with an MSDOS ‘view’ program which allows you to view, decompress, or copy files to your disc. It's fully BBS'd with description files compatible with popular MSDOS BBS programs.

The cost is $29.95 plus $10 for airmail overseas, For more details I would adv sending a quick line to:-

Walnut Creek CDROM, 1547, Palos Verdes, Suite 260,

Walnut Creek,

CA 94596,

USA.

As I said before, CP/M has been around for a long time and has been implemented on lots of computers. One of the disadvantages of this is that there are several disc formats used. I think if] give you each in turn you will have something to refer to when it comes time to convert a program from one system to another,

First, the format used by CP/M 1.4

discs. CP/M 1.4 was designed to work with 8” 250k dises which are laid out in the following way:

77 tracks in total. 26 sectors per track. 128 bytes per sector. Software skewin, 2 reserved tracks. 2 directory blocks (1k each) giving 64 directory entries.

240 1k data blocks, numbered 2-241.

The software skewing means that the sectors are not laid out on the track in the form 1, 2, 3, ete. Instead they are laid out in the order: 1, 7, 13, 19, 25, 5, 11, 17, 28, 3, 9, 15, 21, 2, 8, 14, 20, 26, 6, 12, 18, 24, 4, 10, 16, 22. This allows for some processing to be done between reading one sector and the next. On both the Spectrum (DISCiPLE/PLUS D) and SAM there is no skewing of the sectors on native format discs as the machines are considered fast enough to read sectors in sequence,

The reserved tracks will normally contain an image of CP/M 1.4 which is used when the system is rebooted. It can therefore be deduced that CP/M 1.4 fits in 6.5k (remember that back in the 70s that was quite a big bit of code for a micro).

The CP/M 1.4 directory only has one type of entry:-

Status. 1 byte, 0 = File exists, 229 = File deleted, 128 = File exists and is hidden, (This last feature was undocumented and does not exist in later versions of CP/M although it does in some clones).

Filename. 8 characters.

Filetype. 3 characters, The characters used for these are 7-bit ASCII.

Extent counter. 1 byte. Ifa file grows. above 16k, then it will have multiple

24

directory entries. The first entry has Extent counter = 0, the second = 1, ete. the range is from 0 to 31, allowing files up to 512k. CP/M 1.4 only allows 256k discs anyway.

Reserved. Two bytes, both set to 0,

Number of records. 1 byte, (1 record=128 bytes) used in this Extent. If it is 128, this Extent is full and there may be another one on the disc. File lengths are rounded up to the nearest 128 bytes.

Allocation. 16 bytes. Each byte contains the number of a Ik block on the disc. If any byte is zero, that section of the file has no storage allocated to it (ie it does not exist). For example, a 3k file might have allocation 5,8,90,0.... - the first 1k is in block 5, the second in block 8 and the third in block 9 (which is the last because it is followed by a byte with zero in i

It is true to say that you will not come across 1.4 discs very often (I've only ever had one 5%” disc in that format), However, the information may, one day, be just what you needed to work out how a program in an old book or magazine actually worked.

CP/M 2.2 works with a much larger range of discs than CP/M 1.4. The disc statistics are stored in a parameter block (the DPB), which contains the following information:-

Spt. 2 byte word. The number of 128-byte records per track

Bsh. 1 byte. Block shift, 3 = 1k, 4 = 2k, 5= 4k...

Blm. 1 byte. Block mask. 7 = 1k, 15 = 2k, 31 = 4k

Exm. 1 byte. Extent mask, see below.

Dsm. 2 byte word, Number of blocks on the dise - 1

25

Drm. 2 byte word. Number of directory entries - 1

Dabm, 2 bytes. Directory allocation bitmap. The 16 bits are used to indicate which blocks of the disc are used for the directory.

Cks. 2 byte word. Checksum vector size, 0 for a fixed disc, otherwise the number of directory entries divided by 4, rounded up.

Off. 2 byte word. Offset, number of reserved tracks. These reserved tracks will contain an image of CP/M 2.2, used when the system is rebooted. Discs can be formatted as data only discs, in which case they have no system tracks and cannot be used to reboot the system.

The CP/M 2.2 directory has only one type of entry:

User number. 1 byte. 0-15 (on some systems, 0-31), The user number allows multiple files of the same name to coexist on the disc, A user number of 229 means the file is deleted.

Filename. 8 characters

Filetype. 3 Characters. The characters used for these are 7-bit ASCII. If the top bit of the first character is set then the file is read-only. If the second bit of the first character is set then the file is a system file (this corresponds to ‘hidden’ on other systems).

Extent counter. 2 byte word, An extent is the portion of a file controlled by one directory entry. As with 14, if a file takes up more blocks than can be listed in one directory entry, it is given multiple entries. The formula is: Entry number = ((32*high byte}+low byte) / (Exm+1) where Exm is the extent mask value from the Disc Parameter Block.

Reserved. | byte. Set to 0.

Number of records, 1 byte, (1

record=128 bytes) used in this Extent, | of data

only discs where no space was

low byte. The total number of records | wasted with storing a copy of CP/M.

used in this Extent is calculated by: | ~~ ~~ Next time, I will give you the layouts

(Extent counter & Exm) * 128 + Number

of records. If this is 255, this Extent is | for the remaining versions of CP/M, full and there may be another one on the | including the Amstrad one.

disc. The & in the equasion means that Exm (from the DPB) is logically ANDed with the Extent counter. File lengths are only saved rounded up to the nearest 128 bytes.

Allocation, 16 bytes, Each Allocation byte is the number of a block on the disc. If an number is zero, that section of the file has no storage allocated to it. For example, a 3k file might have allocation 5,6,8,0,0.... - the first 1k is in block 5, the second in block 6, the third in block 8. Allocation numbers can either be 8-bit (if there are fewer than 256 blocks on the disc) or 16-bit (stored low byte first).

You will see from this that the new format of CP/M 2.2 allowed the use of

much bigger disc, as well as the creation

See you then.

CLIPART PICTURE PACKS- High resolution 750 by 750 pixel pictures to print out on your printer in super hi-res using special software anywhere 10 the enact mim, upto 3 different sizes and 6 colour,

Photo Scanning Service.

Ay tve pre pds ge ou wl he be sew ep om yout a shah saan 17

‘Sn me} a {ina wre ean eke You

a moe dea sed ete Sale pk,

(Sent m tare formas ds wih tee 0p cana suchen

ae wien Gmowoce, | panini 1eSomanen Rone” SSS on pa

errs 1c, Maer

paints aati |e sone Wrrneruice OA aem 200) | Sameer Photo pack Free, Tidgams == ar Reet

Lise aioe eeeeeatetaee

eo! SS

vot Tin ea re

1 a

‘TECH on

\ & 5 s ‘ORDER FROM NOVAT (0800 777800. order before 4 300m

1: pa pers ont Tet a ae gh rs enprne# and 3 po ar see em pe thw, iano tndvae mat cine comma Rags S9

TEL & FAX

‘5C_WORD pro (Tie DIP Package £29.99) Thermos avaned wenger, bal smth so agg

(24 spl, most im 1 ss) the sam tpt yu mould pt fom PCS i eounn Asi Cin oath pees page acon

{gh resto Sere met

‘a eof yoda

Din anda dive tne sere tee At Mana and Wood po ui ak

‘ple Clipart and Pats Samia nl

You'll eda Si2K Sam Maem An and 24 pa ot mas et ‘ty Cane an am Ss nc esse iF HN

STEVES SOFLWARE

7 NARROW CLOSt

Some ens ion oA pee of pet

HISTON, CAMBRIDGE, CB4 4X. 235150 after 6pm.

0122

Spectrum 128K

RAM-PA GEing

Part 2.

Last month I introduced you to the way in which the 128K Spectrums handle their Paged-RAM system. This month I want to continue with: MACHINE CODE PROGRAMMING

AND THE EXTRA RAM

Machine code programmers must approach the extra RAM in the 128K Spectrums completely differently, There is no RAM disc as far as machine code is concerned, just a number of 16K RAM ‘pages’ which can be interchanged in the memory area from 49152-65536.

Unlike using the extra RAM from Basic, 128K (and +2, +3 and +2A) machine code programmers can look at the extra RAM in exactly the same way, as the method for switching RAM pages into memory at 49152 is the same for all 128K Spectrums. There are 8 RAM pages in total which make up the 128K of memory. Some of the pages are used for certain purposes however, like page 5 which is usually switched in at location 16384 (4000hex) and is used as screen memory. Page 2 is usually switched in at 82768 (8000hex) and is used by Basic as data storage as is page 0 which is switched in at 49152 (CO0Ohex),

On the +3/+2A a chunk of page 7 is used by +3DOS for storage.

To the run-of-the-mill Basie programmer the RAM pages are completely ‘transparent’ and will be of no. real direct use except if he uses the RAM disc which uses the RAM pages as storage. However, to the machine code

By:- Paul Wallace.

programmer, the facility of having much more memory available that can be ‘paged’ in and out at will is very useful Switching different RAM pages into locations C000h-FFFh (49152d-65536d) is a simple easy task and doesn’t take up too much space or processor time, The following assembly program shows how easy it is to switch between the eight RAM page: LD A,17 ; Number in accumulator must equal 16+page number. In this case page 1.

LD BC,32765 ; Prepare for switch

OUT (C),A ; Perform switch

LD (23388),A ; Keep BANKM system variable up to date.

RET ; End,

‘Once a RAM page has been paged in you can store machine code, or for ‘example a screen. You could then switch the page out by using the same routine as above but with a different page reference in the accumulator, Once another page has been switched in, although the data you put into the previous page has ‘vanished’, by re-paging that RAM page you can access all the data you put in it once again.

This technique or RAM page switching is well used in Spectrum games programming, with many games now coming in 128K versions. The programmers now use the RAM pages to store extra machine code that would either previously been left out or would have been included only in a tape-based multi-load game.

27

64K RAM ENVIRONMENTS

‘The +3 is unique among the Spectrum family in that it may have an entirely RAM environment with no ROM present at all, This RAM only environment provides a contiguous 64K of readable and writeable memory from 0 to 65535, This 64K environment hasn't been put to use that much though with only Locomotive Software's. CP/M Plus operating system (to my knowledge) using true 64K paging. The advantage of this environment is that if your machine code programs do not need the ROM routines of ROM 3 (the 48 Basic ROM) or any of the others for that matter, you can completely lock them out and thus freeing the space. However, the complete lack of ROM routines means you must write your own routines for things like screen handling, printer driving, etc.

Unlike ‘normal’ paging which uses port 32765 (7FFDhex) the /O port used for 64K environment and ROM switching is port 23399 (1FFDhex), In the scope of this article, the only bits of the port we are interested in are bits 1 and 2. Page 190 of the +3 manual gives details of the other bits, but in order to tell the /0 port we wish to use a 64K RAM paging we need to make sure that bit 0 is set to 1 (which controls ROM/RAM switching).

The 64K environment is to some extent user definable, with a choice of 4 RAM page configurations to choose from. The table at the top of the page shows the various configurations.

‘The pages indicated are in sequence from O to 65536 in 16K blocks. Programmers would be wise to note that if they wish to use time critical routines, some of the RAM pages are in contended memory where they share time with the video circuitry, thus slowing the effective clock frequency from the norm of

3.55MHz to 2.66MHz. Pages 4 to 7 are contended, while pages 0 to 3 are uncontended and so are more preferable to time critical code. Programmers wish to use the screen must also note that the 0,1,2,3 configurations doesn't have page 5 or page 7 available for screen memory, but is much faster as a result. However, the 4,5,6,7 configuration makes two screens available, but is slower because of-this. Programmers using the 4,7,6,3 configuration must also remember to select screen 2 so that RAM page 7 becomes usable screen memory. Writing code to work in a 64K environment can be a nasty bu: it the best of times and is not advised as the ideal introduction to RAM paging to a beginner. The method of creating code to run in your 64K environment is as follows. Firstly, use an assembler to make assemble your code into normal RAM, and if everything is okay, reassemble it to address 0. You must remember that the RST 56 routine is needed so make a space in your code for it, Now add a piece of code to move your code to the bottom page, i.e. Dr LD A, bottom page of RAM configur ation ; this will be 16, i. e. page 0 - remember 16+pag e number) or 20, i.e. page 4); or 28 ~ to switch in sc reen 2 in the 4,7,6,3 confi guration)

LD BC,32765

OUT (Cc) ,A

LD HL, start of your code

LD DE, 49152

LD BC, 16384

LDIR

LD BC, 8189

LD A,page number disc on/off; ie 4,5,6,3 configuration with disc off is 5,

OUT (C),A

28

EI JP start

‘As a demonstration, use 20 for the bottom page, 0 (zero) for HL and 5 for the actual page number. That will set up ‘a simplified ghost copy of ROM which you can muck about with.

And with that I will leave you with a couple of extra utility programs that you may find useful.

‘The first is a ‘RAM Disc Erase’ routine.

PROGRAM 3

10 REM RAM Disc Erase

20 CLEAR 49151

30 PRINT "RAM Disc Catalogue:* :PRINT

40 CAT !

50 INPUT "Do you really want t © erase all these files?"; LINE AS

60 IF AS="N" OR A$*n* THEN STO P

70 POKE 23388,23

80 DIM A$ (255,10)

90 LET COUNT=0

100 LET F=59815

110 LET COUNT = COUNT+1: FOR N=

1 70 10 120 IF PEEK (F+1)=0 THEN LET CO UNT=COUNT-1 : GO TO 150 130 LET A$(COUNT,N) = CHR$ PEEK (F+N) 140 NEXT N

150 IF F>60390 THEN GO TO 170 160 LET F=F +20: GO TO 170 170 FOR N=1 TO COUNT

180 ERASE ! A$(N,1 TO 10)

190 NEXT N

200 PRINT "ALL FILES ERASED!" 210 STOP

Explanation: After displaying the catalogue in the normal way (e.g. CAT !), line 70 switches in RAM page 7 (16+7=23). RAM page 7 contains all the filenames of the files on the RAM disc. These names are then read into the array AS. Once done, the loop from line 170 to 190 erases all the files in turn. Now to a similar routine that renames

PROGRAM 4

10 REM File Renamer

20 CLEAR 49151

30 PRINT “RAM Disc Catalogue:* : PRINT

40 CAT!

50 POKE 23388,23

60 DIM A$(10) :DIM B$(10) :DIM C

$(10)

70 INPUT "Enter file to rename :";LINE AS ()

80 INPUT “Enter new name for * +AS$() +2"; LINE BS()

90 LET F=59815

100 FOR N=1 TO 10

110 IF PEEK (F+1)+0 THEN GOTO 1 50

120 LET C$(N)+CHRS PEEK (F+N)

130 NEXT N

140 IF C$=A$ THEN GOTO 170

150 IF F>60390 THEN GOTO 220

160 LET F=F+20

170 FOR N=1 TO 10

180 POKE F+N,CODE BS (N)

190 NEXT N

200 PRINT "File Renamed

210 STOP

220 PRINT *File not found*

Explanation; Once again, —_ after displaying the catalogue, RAM page 7 is switched in by line 50. You are then asked to enter the filename of the file you wish to rename and the new name to wish to give it. The routine then reads each filename in the catalogue and if it matches with the contents of A$() then a jump is made to line 170 where a loop renames that file. If a match is not found, line 150 makes a jump to line 220 where a suitable message is displayed. THE END

Well, it is for now anyway, hope you found ‘something useful in these two articles. I will be back sometime in the future (all being well) with an article on the memory layout of the SAM.

See you then.

29

Uni-Dos Corner

By:- Henk van Leeuwen. Edited by:- Adrian Russell.

Once more into the breach dear friends... Sorry this corner has been missing for so long but, I must admit, the response from readers has not been forthcoming (you lazy lot you) so I've had to buckle down and get some more UNI-DOS bits together myself.

Still, here it is, another CREATE file for you users of UNI-DOS, another exciting step forward for you all.

With this CREATE file it is possible to ERASE CREATES which are already in memory. It is neccesary to load this CREATE first because it will erase backwards,

‘The syntax is ERASE @.

‘ORG 60000 ERASE @ Start | DEFB 1 ;only one syntax DEFB 210 ;code for ERAS E DEFW Erase_len Lierase CP "@* ;code 64 RET NZ ;reject if wrong RST 40 RST 24 DEFB 13 ;SYN.END LD HL, (23635) ;start of Basic PUSH HL ; get the start of Basic and ; save it on the stack DEC HL ;this is the cha racter value DEC HL ;see below DEC HL ; length byte from the CREATE LD A, (HL) low byte in C from length LD C,A INC HL LD A, (HL)

LD B,A ; high byte in B from length INC BC find total length INC BC INC BC POP HL } start Basic program from stack SBC HL, BC + find new start address RST 16 DEFW 6632 call the clear space routine at 6632 (#19E8) in main ROM. RST 24 DEFB 14 ;COM.END Erase_ln EQU $-L_erase

And again the DATA statements for a Basic poker program if you really need them, 350 DATA 1,210,29,0,254,64,192, 239

351 DATA 223,13,42,83,92,229,43 143

352 DATA 43,126,79,35,126,71,3, 3

353 DATA 3,225,237, 66,215, 232,2 5,223

354 DATA 14

When finished typing this program save it as:

SAVE d**USR _code*USR 60000, 33

Now, lets do roughly the same thing, but in a different way, The advantage with this program is that it gets rid of all CREATES in memory. This program is an EXECUTE file rather than a CREATE as we have seen so far in UNI-DOS Corner.

EXECUTE files are loads and executed, they are not extensions to Basic. Once used it would need to be

30

loaded again if you want to use it a second time. See the UNI-DOS manual for more details.

OK, here is the source for the routine:-

ORG 60000 LD HL, (23635) ;Address of start of Basic LD DE, 23755 inew Basic address AND A SBC HL, DE LD B,H Lb C,L ;length from CREATES LD HL, 23755 RST 16 DEFW #19E8 clear and reclaim space RET And again the DATA statements, 600 DATA 42,83,92,17,203,92,167 1237 601 DATA 82,68,77,33,203,92,215 +232 602 DATA 25,201 When you have finished typing the program save it as:- SAVE d**ERASE_CR " X, 60000

‘The 60000 address is only the one that the routine is saved from, it is not the one that the routine is loaded into when

you use it.

Right, that is all for this time, thanks for reading. 1 will end with a plea for some contributions from readers please, just send them to Adrian via the FORMAT office.

PUZZLE

? SPOT 7?

We have had many letters asking for the return of Puzzle Corner which we used to run a few years ago, it seems a lot of you like to have something to keep your brain cells ticking when you can't get at the computer. So, in an effort to please, here is a little Number Square problem to get your teeth into.

13. Months in two years 14. Millimetres in two contimetre 15. Minutes in two hours

Do 1, Digits 1 rearrange 2. Minutes in a day

3) Five times 1 down an day

6, Fie thmes 1 ac 7, down tr Minutes 4. aero 1. Waa 12 1 down 14, 8 down min

The answer will appear next month. So, the big questions, is it too hard, or too easy, and do you want more - let us know what you think.

34

SAM ee,

system (no messing with slow tapes here)

preys few ideas for starters.

the extra power and features. POWER AT A PRICE YOU CAN AFFORD...

The advanced computer that retains a user friendly appeal which makes even the beginner feel right at home, “An easy. to learn Basic and disc operating

will allow you to do things you never thought possible before, Your SAM comes with a very easy to read manual and everything you need to get started - it even has some pretty impressive demo software for you to run, just to

you already own a Spectrum then this is the machine for you because you don't have to throw away all you have learnt so fa jst be prepared to be amazed at

FEATURES INCLUDE

512K RAM

32K ie aes

800K FI isc Drive

Pe ata

Z80B 6Mhz Processor

Centronics Printer Port

Joystick Port

MIDI & Networking

128 Colours

4 Screen Modes

‘SCART Output (for Monitor or TV) Plus LOTS More....

ONLY £199%

Includes 1 year run to base waaay on ful computer PLUS temened Ind yea wivanty on hain board

‘new manuals and DOS system disc.

bbe slight blemishes to case or base,

Reconditioned SAM Gocge i 3! 2, few, te 08 We are able to supply a small number of professionally reconditioned

SAM Coupé computers. These have been fitted with a modern style SPI, under interfaces below) disc drive, a version 3 ROM, new keyboard unit, and are supplied with

oercammen macomen ns CNLY £1392

Printer Por On The Coupé (see the

Replacement SAM Coupe Disc Drives Coupe. are no. longer made. your exising. dives NOW

due to worn heads, stepper motor failure etc) In these cases you need an imernal Interface Type 1 to which you tansier the

assembled version is a screwdriver. Full fiting instructions are

iv you have any doubts abous which type of interface you need,

ve the FORMAT haline ing on 01452-412572 and they will pleased 1 hep you,

internal Disc Interface Type 1” £1:

The criginal sltin slimline dives produced for the sas] Ts nace nh wih ea he Sab ate Sat Come

eg ef hin ire hn 8 ry Oe SAR MOUSE SET merce, ph Cuty Mae

tour SAM 8 ne lease o ie by tang a modem Syle Bc Npe lant he Soferare te deve i The interlace pugs imo the

eppy ave mouse port onthe back of SAMso you Gort need

i on cases we Gd the fas wh ok ives ae mechanical | MOUSE Por nthe back of SAM s0 you Sow’ need ‘Works beer W you use a mouse

repeat an vel ee Noe 1 Sn fe ae ra eos on ay "| SRST PRINTER INTERFACE] he SP (Cope only lows pea aoe a ca rertat et | eta (coeee sy saa a RA fone or the 1772 on your old drive ts faulty then order a Type 2. | standard LPRINT, LLIST & DUMP commands to work aoa types are available in either kit form or ready assembled, | On Compatible printers. Plugs straight into the expansion

ing iron, solder and | port. Requires BBC type 26 way ribbon printer cable A a ee eat

ena he ony eter ng yoy eed 8 Sarda PC Sse tom your acl spi cox ont 010 £25. "* EXO] Allows two iraces Gaiy't15'95 ox any questions about the drive iting in general. then please IDI] The eXternal Disc Interface. Allows external 3/7

OF 5/7 dive wo be connected io SAM Coupe, Also includes Parallel Priner interface, Only £44.95

I 195 | ALSO AVAILABLE: Printer Cable - £7.95, SCART Cable -

acto 172 Se AMeptSeaton Keyboard £1438; Reploccrsn

Internal Disc Interface Type 2 £29.95 | £39.95 | Power Supply - please rng. Plus spare pans service - tel tus what you want and we will give you a price

INTERFACES

Only £39.95

Only £24.95

be connected 10

[ection 1772)

[ssérestvand phe number and poxsble pleae quote

rai font Restos Sonar Far rotor ee Pong A ha ee Be [Paces valid on

32

[Oxderng, wre your order cea. ware your name: val] Send Your Orders To:

fou ROUC rum’ fas il hepa ech otes| West Coast Mail Order, {West Jpsiaic i FORMAT PUBLICATIONS Oxerentamomen| C/O Format Publications, 34, Bourton Road,

Gloucester,

rt It anny 1999-4 OF GL4 OLE.

Coast Computers

YOUR

LETTERS

Dear Editor,

In a past issue of FORMAT a reader requested help in getting ‘Peking’ to work on SAM, I had hoped to see a reply in FORMAT as to how this could be done, as it’s my wife’s favourite game as well. Any help would be appreciated.

Yours sincerely, M.C.Bastin.

Well we got a good response last time, 80 could someone please help Mr Bastin, either with a working copy or, better still, an article on how to convert the program. I'm sure there will be lots of others interested. Ed.

Dear Editor,

This is the first time I am writing a letter to you. I have just made my first subscription to your excellent magazine, a few months ago. But I have all your sues since the beginning (I bought them with a +2, an RGB monitor and some other stuff for just about 30,000 drachmas). My first +2 was bought in 1986,

I am desperately looking for a video grabber for my Spectrum. I have searched all over my country but nothing. The only clue I have found was, that someone down in Athens had one. No names, not a thing. I would be really grateful, if you could show me any way to put up an end in this six years old ‘Quest for Videoface‘ (or ROBO). (Hey! by the way, I can make an adventure game using the ady.creator).

‘The funny thing is that my friend George Siougas (he has joined the army) asked Romantic Robot if they would sell the rights to someone else. But nothing. I

hate people who just a few years ago, were making fortunes by using the Spectrum's publicity and now they just don't give a dime.

1 am working as an animator and a computer programmer on a TV Channel here in Greece (Channel 6). I would also like to ask if there is a genlock which I can use for real video titling. (Not just to pass the Speccy’s screen on a SVHS tape). Is there any possibilities of using an Amiga genlock with the help of the composite video signal which my Speccy has.

All these years I have created some really interesting artspots with the help of the magnificent Art Studio 128K. The disc contains a few of them. Copy freely and if you can use them as a Clipart dise, I look forward to see some of the screen$ meet the lights of publi

Could you put an advert for me about a video digitizer for my Spectrum. No bother about the price. Finally, I have a strange problem with my Disciple, After some time of using it, when it starts to getting hot, strange crashings and things like start to come up. I am sure it isn't my Speccy’s problem. I have tried on 2 +2s and one +128K. (The crashes appear more often to 128K than 48K). I am afraid to send it for a service, because I have read just enough in your letters pages about people who never get their interfaces back. If you have had any other situations like mine, could please answer back.

Well, somewhere here I have to stop. 1 hope I will see some of these lines in one of Your Letters’ pages.

Keep up the good work and I believe

33

that all of us will enforce you. May the force be with you. (Star Wars is waiting for me on my +2, After all I hate X-Wing ‘on my 586). Yours sincerely, Anestis Koutsoudis (Spectro-Fanatic on the loose).

Well Anestis, lovely to hear from you. I've put your request for a digitiser in the small ads so that anyone who has one for can get in contact - hopefully you will find one soon. I don't know of a genlock device but I'm sure if there is one our readers will soon point us in the right direction.

It was nice to see the artwork you sent on disc, if I can I will get printouts of a few of the screens and print them in FORMAT sometime - it is a long time since anyone sent anything like this in and it make a pleasant change.

The DISCiPLE problem is an old one. The root of the problem is that the case is plastic and does not allow enough cooling of the voltage regulator inside the DISCiPLE. This is made worse when the Spectrum sits on top (hot air rises of course) and being in a warmer climate than our’s also does not help the situation, As to how to cure it? Well moving to a colder country may not suit you, 80 the best advice is to do anything you can to cool things down - I had one DISCiPLE that I used to run without its case to keep it a little cooler, If you ha anyone with electronics experience then you could get them to check the voltage regulator on the DISCiPLE, some start cutting out at a lower temperature than others. Ed.

Dear Editor,

I need to use my SAM Coupé to print out cards for a party card game of my invention (Spacetrek), so I will have to change my printer for one that can print text in BAW or possibly in colour directly on to card,

Can you advise on hard and software please?

Some years back there was talk of a disc interface for the Spectrum. Is there any chance of it being revived? Perhaps a DIY kit? I would gladly fork out just for instructions on how to build.

I never buy ‘shoot em ups’ as they are always too fast for me, and I have wondered why programmers don’t start the games dead slow and thn monitor the player's progress and up the speed accordingly, perhaps with random variation.

Yours sincerely, Richard Appleton. Printer choice is very much down to

personal preferences, so it is very difficult to give advice on that. Few printers will handle card unless it is

quite thin, the thing to look for is as straight a paper path as possible, if the card has to bend then you have problems.

‘The PLUS D replacement was dropped when Blue Alpha went down, They were building the interface for us and without spending large sums of money to recover the PCBs that had been made, the project died with them, The real problem though was not the PCBs, these could have been redone, but with the PAL chips inside, We did not ourselves have access to the programming logic for the PALs and so, unless someone could work out the curcuit that the PALs replace, it was a non-starter,

And I could not agree with you more on the games front, my feelings exactly. Ed,

Dear Editor,

Please renew my membership from the February 1997 issue, my old number was 13585 and if possible or if it is of any help to you then please feel free to use, continue with this number, if you wish.

1 would like to take this opportunity to say how much I have missed the magazine the past few months, and to say how sorry I am to have left it so long before renewing.

May I also thank you and everyone

34

involved for the SAM conversion of ‘Elite’, and for the splendid Gloucester shows. I have attended every one so far and will continue to do so if you renew my membership,

For myself, a Sunday show would be better as I have to take a day off work on the Saturday to be there, and as a result I then have less money to purchase what I want. Though I do realise I am probably in the minority on this issue, and that it is not worth the risk as long as the Saturday shows continue to be well attended, it is just a personal view.

Your sincerely, Ken Pascoe.

Your membership number is your's for life Ken, we don’t reuse them. And if, as in your case, renewals arrive a little late, we always back-date and send out the missed issues so you can catch up.

There has been a couple of letters about a Sunday show, what do other people think - we will go with the majority (not surprisingly) so which

should it be Saturday or Sunday? Ed.

Dear Editor,

Congratulations on an excellent first issue of FORMAT PC.

I am currently using a Spectrum, SAM and Laptop PC.

The majority of my interest - say 95% is on SAM, the laptop being used solely for reasons of portability.

I don’ intend to become a PC person, but I will still be interested enough to purchase FORMAT PC.

Keep up the good work.

Your sincerely, K-Powley.

‘Thanks Mr Powley, glad you like Ed.

Dear Editor,

Please find here the address of company called Rakewell Ltd., they are computer consultants who can help with using Z88's (and other computers). They also sell 288's and both software and

hardware to go with them. They also do newsletters, the one I have is issue 13 of the 288's and issue 2 of the PC's.

Right, the address is: Rakewell Limited, 24, Putnams Drive, Aston Clinton, Aylesbury, Bucks, HP22 5HH, Tel 01296 630617, Fax 01296 632491. When phoning ask for Vic, mention me Phyl at Milton Keynes. Also - Bob - he goes to all the All Formats Shows. Wonder if he might go to yours. I will be seeing him this Saturday.

Your ¢ sincerely, Phyl Smith.

Many thanks for the info Phyl. Since Bill Richardson/EEC went down last year it is good to see there is still support. for the Z88. We will contact them soon with details of the Gloucester show. Ed.

Dear Editor,

‘Thank you so much for my December issue of FORMAT and FORMAT PC and my two discs I ordered, safely received.

T have enclosed my cheque for future issues of FORMAT PC. Both magazines make excellent reading, may you be able to keep up the standard for many years to come. Well done.

Whilst pre Xmas shopping for some sliding drawer file folders, I took a copy of FORMAT with me to enquire about binders for FORMAT magazine. The gentleman in the shop photocopied your address page and said he would see what he could do. Of course whilst talking to him I realised I couldn't give an amount that may be required or ask for prices, but he took my name. J am hoping this will be of some use to your and all your readers who like me, must be getting desperate now to know where to store our mags safely.

If you would care to follow up my enquiry the name of the firm is enclosed. 1 do hope some of this information will be helpful. If not would you kindly let me know as I may have another idea I am currently working on.

You asked for favourite games to play.

35

I have my Scrabble, Backgammon, Chess, Paper boy, Trivial Pursuit sometimes, and my wife loves Fruit 2 as it saves her spending her money!! The tape broke recently and I haven't got a copy. Anyone Help? My grandson loves any ‘scrambling tapes and = my granddaughter loves Butterfly. There's lots more I would write about but 1 expect you're fed up with all this by now, so I will close. Thanks again for a wonderful mag(s),

Yours sincerely, Eddie Byde.

Many thanks Eddie, will contact them soon and see what they can do for us, But don't let that stop you coming forward with another idea - it is always good to have more than one iron in the fire. Ed.

Dear Editor,

1. I saw that you published Mr 4J.A.Lornie’s letter in the December issue of FORMAT, 1 don't know whether he has decided to join INDUG, but if he does, I believe that I may be entitled to a small reward, I enclose a photocopy of his letter to me, as evidence that I pointed him in the direction of FORMAT.

2. I have been thinking for some time that it might be sensible belatedly to bring myself into the last quarter of the 20th Century by acquiring a SAM. However, as I understand it, SAM doesn’t come with a colour monitor. Is it still possible to buy these monitors, or has one to depend on picking one up second-hand? I haven't seen one in the FORMAT Stall Ads recently, Nor did I see one for sale at Quedgeley.

If I could lay my hands on one, I might well try to use it first to get the best out of my Spectrum 128/DISCiPLE, before deciding to change over to SAM.

3. At Quedgeley I bought a 3%" external dise drive, which I find a great improvement over 5%”. 1 would like to get another, but the same question

arises - where from? The regular computer journals and catalogues don't advertise them any more. Is there somewhere I can buy one, or does one have to rely on the second-hand market? Judging from the November FORMAT Small Ads, everyone wants one!

4, [have two Spectrum+ with the same fault: vertical stripes all over the screen, and no response to the keyboard. Could this be a well-known fault with a well-known solution? I am quite prepared to get out my soldering iron and change a component or a standard microcireuit if that could provide the answer. Alternatively, do you know of anyone who is still repairing Spectrums? The Resource Directory in the September FORMAT didn't seem to include anyone who does,

5. If the answers to (2) and (3) above are that I do have to rely on the second-hand market, then would you please publish an advert for me in Small Ads.

Please put my, name, address and telephone number after each advertisement.

Yours sincerely, E.H.Cooke-Yarborough.

Yes he has, thank you very much for pushing him in the right direction. A bonus 3 months has now been added to your membership (something we always do for members if they introduce someone new).

SAM does not come with a monitor but you should be able to get one (I got a Philips one second hand at the last Gloucester show), although I recommend going for a TV with a scart input as you then get the best of both worlds.

Personally, I still prefer the 544" drives, but then I'm tight-fisted and 5%" discs are so much cheaper, There are still plenty of 3%” drives around, sold for use with the BBC computer and others - some may need a different cable (and

36

possibly a dualing-up cable so you can plug both drives in together) but it is usually not too difficult to get a drive working with the DISCiPLE/PLUS D. Of course you need a cased drive with a power supply.

However, we will run the small ad for you so you can see what is on offer. of the Resource Directory out later this year 80 if there are any companies we missed then its up to readers to tell us about

I

Dear Editor, First of all here’s wishing everyone at

FORMAT and__ their alist contributors a Happy and Prosperous New Year. SAM computing would not be me without your informative

On the subject of informative articles, I would like to congratulate Martin Fitzpatrick on his series ‘Talking C’. This, is the first time I have had the mysteries of the language explained in simple terms. It seems to me however, that as SAM C is not compatible with the official Cused by the PC’s, a lot of the attraction nguage is lost, or am J missi something? If one wants to program in C then why not go the whole hog, beg borrow or buy a PC and learn the official ion. The SAM C also suffers from the lack of a syntax checker when the prograrn lines are being entered. Mistakes can only be picked up when the compiler chucks the program back with umpteen error mei

It seems to me that what is really required for SAM is a first class Basic Compiler making use of SAM 's already excellent Basic. I would certainly buy such software. Are any software houses working on this?

I would be very interested to know how other FORMAT readers feel on this subject. There has not been much comment from the grass roots readers to

date. Yours sincerely P.J.Williamson.

C is a language that grows. Although there is an ANSI (American National Standards Institute) definition for C this is not to say that it is the standard.

SAM C is what is called a small implementation. It is no less valid than any other C and certainly should not be derided because it does not match the Cs available on the PC (there are many SMALL C compilers on the PC as well).

‘The trouble comes, not from the fact that SAM C is SMALL C, but from the fact that most of the books available are devoted to ANSI C (or Microsoft C which is yet another hybrid). Luckly, Martin is doing a good job for us. When his articles are more advanced then he hopes to cover how to implement some of the missing ANSI C commands on SAM.

‘On some computers having a compiled Basic would be a major step forward, but ‘on SAM the speed increase would not be 80 great as it is already a very fast Basic. However, in some ways there is already ‘a compiler built-in. RECORD/BLITZ allows for quite a few things to be speeded up, take a look at the original MGT/SAMCO demo program on the system disc to see what I mean.

If anyone would like to do a small article on RECORD/BLITZ, I'm sure it will be well received by readers. Ed.

Dear Editor,

I first heard of INDUG and FORMAT from a news item in Computer Shopper, I sent off straight away and have every issue from the very first introductory copy. Every one has been full of interest 80 how could I fail to renew my sub? I couldn't, so here is my cheque for another year.

Meanwhile, congratulations on the last (as in just gone by) Gloucester show which proved _ interesting and stimulating as usual. If anyone bought a hard drive interface and is now looking

37

for a suitable drive, they might find what they are looking for at MS Brokering, Airport House, Purley Way Croyden, CRO OXZ Tel 0181 286 6060. I have not tried them so do not know what their service is like.

Did someone enquire about keyboard membranes recently? If so they could try Trading Post, Victoria Road, Shifnal, Shropshire, TF11 8AF Tel 01952 462135. ‘Their recent ad in Micro computer Mart listed 48K membranes, rubber mats and many other items including 3 inch disc drive belts for the Spectrum.

Yours sincerely, R.Bates.

Glad to hear you are staying with us, we will do our best to keep up the service. Ed.

“Teffers may be shortened or edited to fit on these pages although we try to edit as little as possible.

This is YOUR leters page $0 I up to you 10 ft with icteesting tings. Come on, get wring, any subject even remetely ‘rested to computers. Just keep things 8s shot a you can s0 we an ft in as many as potable each month Pioase write Seay or type your ltrs. Send them to Be adress on page 9 o fax Dem $5.us 09 01452 380800,

Wanted Colour monitor compatible with Spectrum 128, working order or easily repaired Also 314° 80 track, double sided external dise drive in good working order, cased with PSU, compatible with DISCiPLE/PLUS D. Contact E.1H.Cooke-Yarborough, Lincoln _ Lodge, Longworth, Abingdon, Oxfordshire, OX13 5DU.

‘Tel; 01865 820224

FOR SALE 2 ZX Spectrum+2s. complete and working. Genius mouse and interface for +2, Cub 653 colour monitor and lead for Spectrum and SAM. Datel PLUS D and disc drive complete with printer lead. Over 200 assorted software titles, too many to list. Ring BJ.Easton on 01472 + 812773 and make an offer.

WANTED Video digitizer for the ZX Spectrum, Please write with details and price to: Anestis Koutsoudis, 64, Miaouli Street, Xanthi 671000, GREECE.

FOR SALE Sinclair joystick, boxed, £3 or will exchange for working cassette recorder (no leads needed, I have plenty). 7 or 8 48K Spectrum tapes - free for collecting, Also, need someone in Gloucester/Cheltenham area to repair Spectrum,

And now here are the answers to the Christmas Crossword we published in the December issue.

AJHarding, Phone 01452-618243 -(corry, I'm deaf, so you have to speak through my wife).

YOUR ADVERTS ‘Selling, Buying, Pen Priends eto.

‘Any PRIVATE advert, subject to aceeptance, willbe printed JERE in the nert available jaue. Any software old MUST| te original. The publishers will not be held, in any responsible forthe adverts in thi eolum.

Due to shortage of space, if your advert remains Junpublished after two months then please send it in again, [Trade advertisers contact the publisher fr eats.

38

Price: £24.95 COLOUR DUMP. Screen dump sofware to work wth Epson compatible colour printers. RRP £12.95,

Order Code: SCD-05 Price: £7.95

Order Code: SCD-31 Price: £15.95 MasterBASIC Extended Basic for SAM, works wih ether Master00S or SAMDOS, Order Code: SCD-32 Price: £15.95 Order Both MasterDOS & BASIC Together and SAVE £5.

SAMSPEC SOFTWARE ‘SAM + Spectrum versions on one disc (5%40r3%

FONT LIBRARY, 100 screen fonts pls suppont sofware, ‘28710 use on ether computer, (Special 3" csc avalable - Spectrum fies ony). RRP £8.95

Order Code: SSD-01 Price: £6.95 MONEY MANAGER Advanced personal budgeting system for bon machines. Specrum version needs 128K/+2 (nok +2a or 43), RRP £15.95

Order Code: SSD-02 Price: £9.95

Unless oerwise cicated hese are DISCIPLE/PLUS 0 programs, Please state 34" or 5" dtc (80 track ory) on order

ARTIST 2. The best ait package ever wrtten for the ‘Spectrum. 48K and 128K versions on the same disc. With page-maker and usity sofware. Fullmanual RRP £19.95 Order Code: SPD-01 Price: £12.95

UTILITY DISC #1. Six of the best and most useful dsc Utlies for DISCPPLE or PLUS D. Added bonus program - Not to be missed. RRP £9.95

Price: £6.95 PCG's DIP PACK The famous package induding \WordMaster, TypeLiner & HeadLiner. Incides 2 extra font ‘ucks bringing the total pack valve to £53.40.

Order Code: SPD-04 Price: £24.95 +3 Version: SPD-04C Price: £29.95 MUSIC MAESTRO, Write music either just for fun oF to Include In your own games, Full manual, lots of demo tunes. The ideal way to write music on the Spectrum. RRP. £9.95 Order Code: SPD-05 +3 version: SPD-05C

Price: £9.95

READERS SERVICES FORMAT BACK-ISSUES

Volumes 1, 2 and 3 are now out of print. Volumes 4,5,6,7 and volume 8 are available as complete volumes. Order bby giving the Volume (Le. V5). Price: £14.00 per volume. ‘Al issues, from Volume 8 1 (September 1994) to the latest issue, are avalable separately. To onder just quote: the Volume and Issue N°. Price: £1.75 each, (5 or more £1.50 per copy),

HARDWARE

DUC LEAD For use with DISCPLE or PLUS D. This ‘Dualing Up Cable’ allows two dsc drives to be attached without the need for opening one drive 0 ater ts 10. ‘Alows you to switch dives to even out wear wthout ‘opening cases. RRP £16.95

‘Order Code: DUC-01 Price: £11.95 PRINTER LEAD, Top quality parallel printer lead (BBC standard). 2 metres ong. For use wth DISCIPLE, PLUS D (or SAM RRP £10.95

Order Code: PPL-01 Price: £7.95 SPRINTER LEAD, For +3 or +2a. RRP £12.95 Order Code: PPL-02 Price: £9.95

‘SAM COUPE TECHNICAL MANUAL Version 3,

The real inside info on SAM. No SAM is complete without one. RRP £16.95

Order Code: STM-01

NEW SAM_CLOCK MEW ‘The SAM_CLOCK 's fully compatible with the TIME and DATE functions of MastetD0S and has an gral batery ‘that keeps the board functioning when your SAM is ‘switched off. The board fits onto the expansion connector at the beck of SAM bu comes wih @ builtin ‘through-connector So you dont need a Two-Up to use tin ‘conuncion wth anchor rterace. RRP. £2995 Order Code: SCH-01 Price: £24.95

‘SRDERING At pees pode UN pap. crersens reader pest ‘248 10% 1 fr exva postage

Cleary state Order Code, Product description, Quantity requies ‘nd Price. Remember to dd. any postage and dont forget your Mombersiyp Number oF we cant process yout order, Payment in STERLING by Cheque (drawn on 3 UK bank), P.O. Euro Cheque ‘or Cash Make cheques payable to FORMAT. Payment MUST be in.same.envslope.ns-ocdet, Send to FORMAT's address on

Price: £12.95

age 3. Normally dapat i at Pe same time as your next eave ‘01 FORMAT, We wil rot be held babe for delays OF non-deivery

fue wo orcumstances beyond ou cont

39